package com.bestv.bsr.core.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
import org.springframework.context.annotation.Configuration;

import java.util.Map;

/**
 * 安徽移动 配置
 *
 * @author taojiacheng
 */
@ConfigurationProperties(prefix = "recommend.ah")
@Configuration
@Data
public class AHRecommendProperties {

    /**
     * baseUrl
     */
    private String baseurl;

    /**
     * cpid
     */
    private String cpid;

    /**
     * itemType 映射关系
     */
    private Map<String, String> itemTypeMap;

    /**
     * 场景映射关系
     */
    private Map<String, String> sceneConvertMap;

    /**
     * 智能推荐接口安徽移动apk版本多少及以上不需要过滤第三方节目
     */
    private String apkVersion;


    /**
     * 最大推荐节目数
     */
    private int maxRecommendSize;

    /**
     * 缓存开关
     */
    private boolean cacheEnabled = true;

    /**
     * 缓存时间
     */
    private long expireSecond;


    /**
     * sentinel 熔断配置
     */
    @NestedConfigurationProperty
    private SentinelProperties sentinel;


    @NestedConfigurationProperty
    private ThreadPoolProperties threadPool;


    @Data
    public static class ThreadPoolProperties {
        /**
         * 核心线程数
         */
        private int corePoolSize = 8;
        /**
         * 最大线程数
         */
        private int maxPoolSize = 8;
        /**
         * 最大等待时间，单位秒
         */
        private long keepAlive = 0L;
        /**
         * 队列大小
         */
        private int queueSize = 1000;

    }

}
